Integrated circuits (IC) are miniaturized electronic circuits that are typically manufactured from a semiconductor material. Due to the reliability of integrated circuits and developments within the industry that allow ICs to be mass produced, the usage of integrated circuits has become ubiquitous in the manufacture of many commercial electronics equipment produced today and have contributed significantly to the proliferation and development of the electronics industry.
Application-specific integrated circuits (ASICs) are integrated circuits designed and customized for a particular use. Often, one or more ASICs are implemented on or as part of an electronic hardware chip. In a typical integrated circuit design, disparate and independent units (or “modules”) of logic are clustered with units having similar function and/or purpose to form separate, specialized partitions within the chip. Many integrated circuits will use one or more clock signals in order to synchronize the modules of the circuit and to account for propagation delays across the chip. This clock signal may be generated by a clock source (such as a phase-locked loop), and directed and propagated through the partitions in a chip via clock routes between adjacent partitions.
In typical implementations, routes connecting partitions and clock sources may be pre-determined and implemented by routing macros among the adjacent partitions. Conventionally, these routing macros are embedded and intrinsic to the partitions, wherein a single partition may have multiple macros. For example, a common configuration comprises partitions with four or more macros, oriented according to compass directions (e.g., North, South, West and/or Center and East). For exceptionally large partitions, additional mid-partition macros may also be included. Global clock routing tools layout the clock sources based on a grid that is overlaid onto the chip. The overall clock layout grid may not be associated with the underlying partition, so the placement of the clock source may become problematic within the partition layout.
According to conventional IC design methodology, each clock signal may be programmed to take a particular route once the “floor plan” of the partitions is known (e.g., set by design). Because the sizes and shapes of partitions may vary according to the particular configurations of logic there is a tendency for the partitions to be shaped irregularly and/or asymmetrically due to ad hoc customization. As a consequence, programming the routing between partitions must be performed manually, and every route is independently specified for each step in the route. Naturally, this can be a very time consuming and effort-intensive procedure. As ICs become more complex (e.g., designed to include more partitions), the problem of supplying accurate and synchronized clocks to all the circuits becomes increasingly difficult.
Further complicating the matter, the inconsistency of partition sizes and shapes can add to the complexity of manually programming specific routes as well as resulting in severely inconsistent hop lengths, which, when combined with human error, increases the potential for sub-optimal clock routes or ineffective signal delivery. Moreover, chip designs may change between the initial floor planning stage and the completion of a final design within the design process. Frequently, the size and/or shape of one or more partitions may change dramatically, and, because the ability of a clock routing macro to propagate a signal is finite, significant alterations may result in transition violation issues as an originally adequate clock routing macro may no longer be sufficient to propagate a signal to the next destination in a route, thereby rendering the original clock routing macro layout obsolete and requiring significant reprogramming of the corresponding one or more clock routes. In some cases, the modification of the partitions may occur even after the macros have been embedded to the macro. In such instances, post design change orders may be required, which may contribute heavily to unnecessary delays and additional labor costs.